You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci: add a Tag release workflow that bumps and pushes the release tag - #87
IDE-86. Releasing means tagging by hand; this makes it a dispatch.
What Changed
CI: tag.yml — workflow_dispatch with a minor (default) / major / patch bump. Refuses non-master refs, derives the next version from the latest release tag (bare X.Y.Z and vX.Y.Z both count), pushes vX.Y.Z, then calls CI.
CI: ios-sdk-ci.yml gains workflow_call, since a tag pushed with GITHUB_TOKEN doesn't trigger it. The release Slack post fires for these runs and shows the version.
How to Test
Run Tag release from master after merge
Notes
Next default release is v1.4.0 (latest is 1.3.0).
Podspec version and its bare-tag :tag source are unchanged.
Thanks, dispatching the release instead of tagging by hand is a good change. Two things to fix before we use it for 1.4.0, which has to reach CocoaPods trunk before it goes read-only on Dec 2:
1. The tag needs to be bare (1.4.0), not v1.4.0. The podspec's source is :tag => "#{spec.version}", so pod trunk push and every pod install for 1.4.0 look for a tag named 1.4.0. With only v1.4.0 on GitHub, the 1.4.0 pod can't be fetched. That nearly happened with 1.3.0: its release stayed a draft, so no 1.3.0 tag was created. CocoaPods only worked because a 1.3.0 branch was still around, and SPM's from: "1.3.0" didn't resolve at all until the tag was published on Nov 9. #85 already moved CI to bare tags for this reason. Pushing ${VERSION#v} instead of ${VERSION} (and passing that to CI) would fix it.
2. Check the computed version against the podspec.tag.yml works out the version from existing tags plus the bump input, while the podspec's spec.version and MARKETING_VERSION are bumped separately in the release prep PR. If they disagree, for example minor is picked when the prep PR said 1.3.1, the tag won't match what the podspec publishes. A step that fails unless the computed version equals spec.version in OptableSDK.podspec would catch that. Alternatively, read the version from the podspec instead of computing it.
Minor: once this lands, docs/releasing.md should say to run the "Tag release" workflow rather than creating the tag via a GitHub release.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
IDE-86. Releasing means tagging by hand; this makes it a dispatch.
What Changed
tag.yml—workflow_dispatchwith aminor(default) /major/patchbump. Refuses non-master refs, derives the next version from the latest release tag (bareX.Y.ZandvX.Y.Zboth count), pushesvX.Y.Z, then calls CI.ios-sdk-ci.ymlgainsworkflow_call, since a tag pushed withGITHUB_TOKENdoesn't trigger it. The release Slack post fires for these runs and shows the version.How to Test
Notes
v1.4.0(latest is1.3.0).:tagsource are unchanged.